home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-08-10 | 11.7 KB | 305 lines | [TEXT/MPS ] |
- (*
- File: Devices.mod
-
- Contains: Device Manager Interfaces.
-
- Version: Technology: System 7.5
- Package: Universal Interfaces 2.0 in “MPW Latest” on ETO #17
-
- Copyright: © 1984-1995 by Apple Computer, Inc.
- All rights reserved.
-
- Bugs?: If you find a problem with this file, use the Apple Bug Reporter
- stack. Include the file and version information (from above)
- in the problem description and send to:
- Internet: apple.bugs.applelink.apple.com
- AppleLink: APPLE.BUGS
-
- *)
-
- (*$IF UNDEFINED OLDROUTINENAMES*)
- (*$SET OLDROUTINENAMES FALSE*)
- (*$END*)
- (*$TAGS-*)
- (*$CALLING PASCAL*)
- MODULE Devices;
-
- IMPORT SYSTEM, Types, Quickdraw, OSUtils, Files, Events, Dialogs;
-
- (* $PUSH*)
- (* $ALIGN MAC68K*)
- (* $LibExport+*)
-
- CONST
- chooserInitMsg* = 11; (* the user selected this device package *)
- newSelMsg* = 12; (* the user made new device selections *)
- fillListMsg* = 13; (* fill the device list with choices *)
- getSelMsg* = 14; (* mark one or more choices as selected *)
- selectMsg* = 15; (* the user made a selection *)
- deselectMsg* = 16; (* the user canceled a selection *)
- terminateMsg* = 17; (* allows device package to clean up *)
- buttonMsg* = 19; (* the user selected a button *)
-
- (* Values of the 'caller' parameter to a Chooser device package *)
- chooserID* = 1;
-
- (* Values of the 'message' parameter to a Control Panel LONG("cdev") *)
- initDev* = 0; (*Sound.Time for cdev to initialize itself*)
- hitDev* = 1; (*Hit on one of my items*)
- closeDev* = 2; (*Close yourself*)
- nulDev* = 3; (*Null event*)
- updateDev* = 4; (*Update event*)
- activDev* = 5; (*Activate event*)
- deactivDev* = 6; (*Deactivate event*)
- keyEvtDev* = 7; (*Key down/auto key*)
- macDev* = 8; (*Decide whether or not to show up*)
- undoDev* = 9;
- cutDev* = 10;
- copyDev* = 11;
- pasteDev* = 12;
- clearDev* = 13;
- cursorDev* = 14;
-
- (* Special values a Control Panel LONG("cdev") can return *)
- cdevGenErr* = -1; (*General error; gray cdev w/o alert*)
- cdevMemErr* = 0; (*Memory shortfall; alert user please*)
- cdevResErr* = 1; (*Couldn't get a needed resource; alert*)
- cdevUnset* = 3; (* cdevValue is initialized to this*)
-
- (* Values of the 'message' parameter to a Monitor LONG("mntr") *)
- initMsg* = 1; (*initialization*)
- okMsg* = 2; (*user clicked OK button*)
- cancelMsg* = 3; (*user clicked Cancel button*)
- hitMsg* = 4; (*user clicked control in Options dialog*)
- nulMsg* = 5; (*periodic event*)
- updateMsg* = 6; (*update event*)
- activateMsg* = 7; (*not used*)
- deactivateMsg* = 8; (*not used*)
- keyEvtMsg* = 9; (*keyboard event*)
- superMsg* = 10; (*show superuser controls*)
- normalMsg* = 11; (*show only normal controls*)
- startupMsg* = 12; (*code has been loaded*)
-
- (* control codes for DeskAccessories *)
- goodbye* = -1; (* heap being reinitialized *)
- killCode* = 1; (* KillIO requested *)
- accEvent* = 64; (* handle an event *)
- accRun* = 65; (* time for periodic action *)
- accCursor* = 66; (* change cursor shape *)
- accMenu* = 67; (* handle menu item *)
- accUndo* = 68; (* handle undo command *)
- accCut* = 70; (* handle cut command *)
- accCopy* = 71; (* handle copy command *)
- accPaste* = 72; (* handle paste command *)
- accClear* = 73; (* handle clear command *)
-
- (* Control/Status Call Codes *)
- drvStsCode* = 8; (* status call code for drive status *)
- ejectCode* = 7; (* control call eject code *)
- tgBuffCode* = 8; (* set tag buffer code *)
-
- (* miscellaneous Device Manager constants *)
- ioInProgress* = 1; (* predefined value of ioResult while I/O is pending *)
- aRdCmd* = 2; (* low byte of ioTrap for Read calls *)
- aWrCmd* = 3; (* low byte of ioTrap for Write calls *)
- asyncTrpBit* = 10; (* trap word modifier *)
- noQueueBit* = 9; (* trap word modifier *)
-
- (* flags used in the driver header and device control entry *)
- dReadEnable* = 0; (* set if driver responds to read requests *)
- dWritEnable* = 1; (* set if driver responds to write requests *)
- dCtlEnable* = 2; (* set if driver responds to control requests *)
- dStatEnable* = 3; (* set if driver responds to status requests *)
- dNeedGoodBye* = 4; (* set if driver needs time for performing periodic tasks *)
- dNeedTime* = 5; (* set if driver needs time for performing periodic tasks *)
- dNeedLock* = 6; (* set if driver must be locked in memory as soon as it is opened *)
- dNeedLockMask* = $4000; (* set if driver must be locked in memory as soon as it is opened *)
- dNeedTimeMask* = $2000; (* set if driver needs time for performing periodic tasks *)
- dNeedGoodByeMask* = $1000; (* set if driver needs to be called before the application heap is initialized *)
- dStatEnableMask* = $0800; (* set if driver responds to status requests *)
- dCtlEnableMask* = $0400; (* set if driver responds to control requests *)
- dWritEnableMask* = $0200; (* set if driver responds to write requests *)
- dReadEnableMask* = $0100; (* set if driver responds to read requests *)
-
- (* run-time flags used in the device control entry *)
- dOpened* = 5; (* driver is open *)
- dRAMBased* = 6; (* dCtlDriver is a handle (1) or pointer (0) *)
- drvrActive* = 7; (* driver is currently processing a request *)
- drvrActiveMask* = $0080; (* driver is currently processing a request *)
- dRAMBasedMask* = $0040; (* dCtlDriver is a handle (1) or pointer (0) *)
- dOpenedMask* = $0020; (* driver is open *)
-
-
- TYPE
- DRVRHeader* = RECORD
- drvrFlags*: INTEGER;
- drvrDelay*: INTEGER;
- drvrEMask*: INTEGER;
- drvrMenu*: INTEGER;
- drvrOpen*: INTEGER;
- drvrPrime*: INTEGER;
- drvrCtl*: INTEGER;
- drvrStatus*: INTEGER;
- drvrClose*: INTEGER;
- drvrName*: ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF Types.SInt8; (* unsigned char *)
- END;
-
- DRVRHeaderPtr* = POINTER TO DRVRHeader;
- DRVRHeaderHandle* = HANDLE TO DRVRHeader (*ΔΔ POINTER TO DRVRHeaderPtr*);
-
- DCtlEntry* = RECORD
- dCtlDriver*: Types.Ptr;
- dCtlFlags*: INTEGER;
- dCtlQHdr*: OSUtils.QHdr;
- dCtlPosition*: LONGINT;
- dCtlStorage*: Types.Handle;
- dCtlRefNum*: INTEGER;
- dCtlCurTicks*: LONGINT;
- dCtlWindow*: Quickdraw.WindowPtr;
- dCtlDelay*: INTEGER;
- dCtlEMask*: INTEGER;
- dCtlMenu*: INTEGER;
- END;
-
- DCtlPtr* = POINTER TO DCtlEntry;
- DCtlHandle* = HANDLE TO DCtlEntry (*ΔΔ POINTER TO DCtlPtr*);
-
- AuxDCE* = (*ΔΔPACKEDΔΔ*) RECORD
- dCtlDriver*: Types.Ptr;
- dCtlFlags*: INTEGER;
- dCtlQHdr*: OSUtils.QHdr;
- dCtlPosition*: LONGINT;
- dCtlStorage*: Types.Handle;
- dCtlRefNum*: INTEGER;
- dCtlCurTicks*: LONGINT;
- dCtlWindow*: Quickdraw.GrafPtr;
- dCtlDelay*: INTEGER;
- dCtlEMask*: INTEGER;
- dCtlMenu*: INTEGER;
- dCtlSlot*: Types.SInt8;
- dCtlSlotId*: Types.SInt8;
- dCtlDevBase*: LONGINT;
- dCtlOwner*: Types.Ptr;
- dCtlExtDev*: Types.SInt8;
- fillByte*: Types.SInt8;
- dCtlNodeID*: Types.UInt32;
- END;
-
- AuxDCEPtr* = POINTER TO AuxDCE;
- AuxDCEHandle* = HANDLE TO AuxDCE (*ΔΔ POINTER TO AuxDCEPtr*);
-
- ControlPanelDefProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (message: INTEGER; item: INTEGER; numItems: INTEGER; cPanelID: INTEGER; VAR theEvent: Events.EventRecord; cdevValue: LONGINT; cpDialog: Dialogs.DialogPtr): LONGINT;
- ControlPanelDefUPP* = Types.UniversalProcPtr;
-
- CONST
- uppControlPanelDefProcInfo* = $000FEAB0; (* PROCEDURE (2 byte param, 2 byte param, 2 byte param, 2 byte param, 4 byte param, 4 byte param, 4 byte param): 4 byte result; *)
-
- PROCEDURE NewControlPanelDefProc*(userRoutine: ControlPanelDefProcPtr): ControlPanelDefUPP;
- (*$IF NOT GENERATINGCFM *)
- INLINE PASCAL $2E9F;
- (*$END*)
-
- PROCEDURE CallControlPanelDefProc*(message: INTEGER; item: INTEGER; numItems: INTEGER; cPanelID: INTEGER; VAR theEvent: Events.EventRecord; cdevValue: LONGINT; cpDialog: Dialogs.DialogPtr; userRoutine: ControlPanelDefUPP): LONGINT;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $205F, $4E90;
- (*$END*)
-
- PROCEDURE GetDCtlEntry*(refNum: INTEGER): DCtlHandle;
- EXTERNAL PASCAL;
- (*
- SetChooserAlert used to simply set a bit in a low-mem global
- to tell the Chooser not to display its warning message when
- the printer is changed. However, under MultiFinder and System 7,
- this low-mem is swapped out when a layer change occurs, and the
- Chooser never sees the change. It is obsolete, and completely
- unsupported on the PowerPC. 68K apps can still call it if they
- wish.
- *)
- (*$IF OLDROUTINENAMES AND NOT GENERATINGCFM *)
- PROCEDURE SetChooserAlert*(f: BOOLEAN): BOOLEAN;
- EXTERNAL PASCAL;
- (*$END*)
- (*
- Note*: DrvrInstall() is no longer supported, becuase it never really worked anyways.
- There will soon be a DriverInstall() which does the right thing.
-
- DrvrRemove has been renamed to DriverRemove. But, InterfaceLib for PowerPC
- still exports DrvrRemove, so a macro is used to map the new name to old.
-
- *)
- PROCEDURE DrvrRemove*(refNum: INTEGER): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $301F, $A03E, $3E80;
- (*$END*)
- (*$IF GENERATING68K *)
- PROCEDURE DriverRemove*(refNum: INTEGER): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $301F, $A03E, $3E80;
- (*$END*)
- (*$END*)
- PROCEDURE OpenDriver*(name: Types.ConstStr255Param; VAR drvrRefNum: INTEGER): Types.OSErr;
- EXTERNAL PASCAL;
- PROCEDURE CloseDriver*(refNum: INTEGER): Types.OSErr;
- EXTERNAL PASCAL;
- PROCEDURE Control*(refNum: INTEGER; csCode: INTEGER; csParamPtr: (*ΔΔUNIVΔΔ*) Types.Ptr): Types.OSErr;
- EXTERNAL PASCAL;
- PROCEDURE Status*(refNum: INTEGER; csCode: INTEGER; csParamPtr: (*ΔΔUNIVΔΔ*) Types.Ptr): Types.OSErr;
- EXTERNAL PASCAL;
- PROCEDURE KillIO*(refNum: INTEGER): Types.OSErr;
- EXTERNAL PASCAL;
- PROCEDURE PBControlSync*(paramBlock: Files.ParmBlkPtr): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $205F, $A004, $3E80;
- (*$END*)
- PROCEDURE PBControlAsync*(paramBlock: Files.ParmBlkPtr): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $205F, $A404, $3E80;
- (*$END*)
- PROCEDURE PBControlImmed*(paramBlock: Files.ParmBlkPtr): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $205F, $A204, $3E80;
- (*$END*)
- PROCEDURE PBStatusSync*(paramBlock: Files.ParmBlkPtr): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $205F, $A005, $3E80;
- (*$END*)
- PROCEDURE PBStatusAsync*(paramBlock: Files.ParmBlkPtr): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $205F, $A405, $3E80;
- (*$END*)
- PROCEDURE PBStatusImmed*(paramBlock: Files.ParmBlkPtr): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $205F, $A205, $3E80;
- (*$END*)
- PROCEDURE PBKillIOSync*(paramBlock: Files.ParmBlkPtr): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $205F, $A006, $3E80;
- (*$END*)
- PROCEDURE PBKillIOAsync*(paramBlock: Files.ParmBlkPtr): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $205F, $A406, $3E80;
- (*$END*)
- PROCEDURE PBKillIOImmed*(paramBlock: Files.ParmBlkPtr): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $205F, $A206, $3E80;
- (*$END*)
- PROCEDURE OpenDeskAcc*(deskAccName: Types.ConstStr255Param): INTEGER;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A9B6;
- (*$END*)
- PROCEDURE CloseDeskAcc*(refNum: INTEGER);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A9B7;
- (*$END*)
- PROCEDURE PBControl*(paramBlock: Files.ParmBlkPtr; async: BOOLEAN): Types.OSErr;
- EXTERNAL PASCAL;
- PROCEDURE PBStatus*(paramBlock: Files.ParmBlkPtr; async: BOOLEAN): Types.OSErr;
- EXTERNAL PASCAL;
- PROCEDURE PBKillIO*(paramBlock: Files.ParmBlkPtr; async: BOOLEAN): Types.OSErr;
- EXTERNAL PASCAL;
-
- (* $ALIGN RESET*)
- (* $POP*)
-
- END Devices.
-